﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Brio.Framework
{
    public class Constants
    {
        public static Random Random = new Random(18912);



        // NO TRIPLETS AT THE MOMENT
        // 1  = Whole   Note
        // 2  = Half    Note
        // 4  = Quarter Note
        // 8  = Eigth Note
        // 16 = Sixteenth Note
        // 32 = Thirtysecond Note
        // 64 = Sixtyfourth Note 
        public const int SMALLEST_RHYTHMIC_UNIT = 32;
        
        public const int OCTAVE = 12;



        public const int OCTAVE_C = 0,
                         OCTAVE_C_SHARP = 1, OCTAVE_D_FLAT = 1,
                         OCTAVE_D = 2,
                         OCTAVE_D_SHARP = 3, OCTAVE_E_FLAT = 3,
                         OCTAVE_E = 4,
                         OCTAVE_F = 5,
                         OCTAVE_F_SHARP = 6, OCTAVE_G_FLAT = 6,
                         OCTAVE_G = 7,
                         OCTAVE_G_SHARP = 8, OCTAVE_A_FLAT = 8,
                         OCTAVE_A = 9,
                         OCTAVE_A_SHARP = 10, OCTAVE_B_FLAT = 10,
                         OCTAVE_B = 11;

        // We take the concept of the smallest unit we will ever represent
        // (This will be 64th notes... I know there are smaller quantities but
        // we will NOT support them at this time)
        // and the below value is how many of the smallest unit will make up the 
        // note length in question. So a whole note is 64 64th notes etc.
        public const int RHYTHM_WHOLE_VALUE = 64,
                         RHYTHM_HALF_VALUE = 32,
                         RHYTHM_QUARTER_VALUE = 16,
                         RHYTHM_EIGHTH_VALUE = 8,
                         RHYTHM_SIXTEENTH_VALUE = 4,
                         RHYTHM_THIRTYSECOND_VALUE = 2,
                         RHYTHM_SIXTYFOURTH_VALUE = 1;

    }
}
